Embedded controllers are ubiquitous, contained in many devices from complex disk controllers to small appliances. Often, the embedded controller runs a set of computer programs that perform many complex functions. Both the hardware and software can be complex and require many man hours to create.
When a new product is being developed, both the hardware and software must be tested and evaluated. In cases where the hardware and software are both complex and the software is required for the hardware to operate, the ‘turn on’ time for the device may be difficult because problems may not be quickly isolated to either hardware or software.
Many devices with embedded controllers have input and output functions. For example, a disk drive controller device may take input from one bus and send the information to the various disk drives it controls. The algorithm used by the embedded controller to process the input and output of the device may be very complex. When turning on a new hardware design with untested software, the debugging process may be long, tedious, and costly.
It would therefore be advantageous to provide a system and method whereby a device with an embedded controller may quickly and reliably test its own hardware circuitry, especially the input and output channels. It would be further advantageous if such a system and method were repeatable, accurate, and was able to characterize the performance of certain areas of the hardware.